﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ImpactTenis.AcessoADados.DTOs;
using ImpactTenis.AcessoADados.ConsultasSQL;
using System.Configuration;
using System.Data.SqlClient;


namespace ImpactTenis.AcessoADados.Vendedores
{
    public class VendendoreDados
    {
         private string _connectionString { get; set; }

         public VendendoreDados() 
        {
            _connectionString = ConfigurationManager.ConnectionStrings["ImpactTenis"].ConnectionString;
        }

        public List<ProdutoDTO>BuscaProdutos(int cor, int tamanho, int marca)
        {
            try
            {
                using (var conexao = new SqlConnection(_connectionString))
                {
                    var command = new SqlCommand(ConsultasSQL.SQL.ConsultaLocalizaProduto(), conexao);
                    command.Parameters.AddWithValue("@IdMarca",marca);
                    command.Parameters.AddWithValue("@IdTamanho",tamanho);
                    command.Parameters.AddWithValue("@IdCor",cor);

                    var produto = new List<ProdutoDTO>();
                    conexao.Open();

                    using (var reader = command.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            produto.Add(
                                new ProdutoDTO
                            {
                                Id = Convert.ToInt16(reader["NumeroProduto"].ToString()),

                                Modelo = reader["Modelos"].ToString(),

                                Cor = new CoresDTO { Descricao = reader["Cores"].ToString() },

                                Marca = new MarcaDTO { Nome = reader["Marcas"].ToString() },

                                Tamanho = new TamanhoDTO { Descricao = reader["Tamanho"].ToString() },

                                Preco = Convert.ToDecimal(reader["Precos"].ToString()),

                                Estoque = reader["LocalEstoque"].ToString(),

                                statusEstoque = reader["StatusEstoque"].ToString(),

                                Quantidade = Convert.ToInt16(reader["Quantidade"].ToString())
                            });

                        }
                    }

                    return produto;
                }
            }        
            catch
            {
                throw new Exception("Erro na consulta de carregar produtos");
            }
        }
    }
}
